123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- "use client";
- import { UserInfoRep, UserVipInfo, Wallet } from "@/api/user";
- import { Link } from "@/i18n";
- import { percentage } from "@/utils/methods";
- import { ProgressBar } from "antd-mobile";
- import { useTranslations } from "next-intl";
- import Image from "next/image";
- import { Fragment, useState } from "react";
- import MaskCom from "./component/MaskCom";
- const vipImages = [
- { leve: 1, src: "/vip/1.png", color: "#686868" },
- { leve: 2, src: "/vip/2-3-4.png", color: "#844C4F" },
- { leve: 3, src: "/vip/2-3-4.png", color: "#844C4F" },
- { leve: 4, src: "/vip/2-3-4.png", color: "#844C4F" },
- { leve: 5, src: "/vip/5-6-7.png", color: "#707386" },
- { leve: 6, src: "/vip/5-6-7.png", color: "#707386" },
- { leve: 7, src: "/vip/5-6-7.png", color: "#707386" },
- { leve: 8, src: "/vip/8-9-10.png", color: "#894622" },
- { leve: 9, src: "/vip/8-9-10.png", color: "#894622" },
- { leve: 10, src: "/vip/8-9-10.png", color: "#894622" },
- ];
- type Props = {
- userInfo: UserInfoRep;
- userMoney: Wallet;
- userVip: UserVipInfo;
- };
- export const ProfileHeader = (props: Props) => {
- const { userInfo, userMoney, userVip } = props;
- const t = useTranslations("ProfilePage");
- const [visible, setVisible] = useState(false);
- const callbackFun = () => {
- setVisible(!visible);
- };
- // Vip 图标
- const vipIconElement = vipImages.map((item, index) => {
- if (item.leve === userVip.vip_level) {
- return (
- <Fragment key={index}>
- <Image src={item.src} alt={"vip"} height={110} width={100} />
- <span className={"icon-level"} style={{ color: item.color }}>
- {item.leve}
- </span>
- </Fragment>
- );
- }
- });
- return (
- <>
- <div className={"userContent"}>
- <div className={"userInfo"}>
- <div>
- <div className={"bgImg"}></div>
- <div>
- <span>{t("Conta")}</span>
- <span className="phone">{userInfo?.user_phone || ""}</span>
- </div>
- </div>
- <Link
- className="goto iconfont icon-xiangzuo1"
- href={`/confirmPassword?userPhone=${userInfo.user_phone}&code=123456&alter=true`}
- ></Link>
- </div>
- {/*vipcard*/}
- <div className={"vip-card"}>
- <div className={"vip-card__icon"}>{vipIconElement}</div>
- <div className={"vip-card-process"}>
- {/*<div className={"process-top"}>{userVip.vip_exp}xp</div>*/}
- <div>
- <ProgressBar
- percent={percentage(userVip.vip_exp, userVip.vip_score_exp)}
- style={{
- "--fill-color": "#fb8b05",
- "--track-width": "0.0694rem",
- }}
- />
- </div>
- <div className={"process-bottom"}>
- <span>VIP{userVip.vip_level}</span>
- <span className={"process-bottom-desc"}>
- {t("expTips", {
- exp: userVip.vip_score_exp - userVip.vip_exp,
- })}
- </span>
- <span>
- VIP
- {userVip.vip_next_level}
- </span>
- </div>
- </div>
- </div>
- <div className="coin">
- <div>
- <span className="iconfont icon-icon-wallet"></span>
- <div>
- <span>{t("Saldo")}</span>
- <div className="num">
- <span className="uppercase">brl </span>
- <span>{userMoney.Score || 0.0}</span>
- </div>
- </div>
- </div>
- <div>
- <span className="iconfont icon-gift2"></span>
- <div>
- <span onClick={() => setVisible(true)}>
- {t("Bônus")}{" "}
- <Image
- className="a"
- src="/img/a.png"
- alt="question"
- width={50}
- height={50}
- />
- </span>
- <div className="num">
- <span className="uppercase">brl </span>
- <span>{userMoney.point || 0.0}</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div className="link">
- <Link href={"/deposit"} className={"btn"}>
- {t("Depósito")}
- </Link>
- <Link className={"btn"} href={"/withdraw"}>
- {t("Sacar")}
- </Link>
- </div>
- <MaskCom visible={visible} callbackFun={callbackFun} />
- </>
- );
- };
|